# -*- coding:utf-8 -*-
from mod.client import extraClientApi
class PluginManager:
    # type: () -> None
    """
    插件管理类，请在插件的__init__中调用 apiUtil.getPluginManager().registerPlugin(self) 将插件注册
    """

    def listenEvent(self, params):
        # type: () -> None
        """
        用于 @Listener 装饰器的监听函数
        """
        pass

    def registerPlugin(self, clazz):
        # type: () -> None
        """
        请在插件的__init__中时调用 apiUtil.getPluginManager().registerPlugin(self) 将插件注册
        """
        pass

    def registerHUD(self, uiName, uiClassPath):
        # type: (str, str) -> UIBase
        """
        注册一个Hud界面。此界面会和血条等界面一同常驻显示在玩家游戏界面上（可以用 ui.SetScreenVisible(False) 将其隐藏，但隐藏时也是走逻辑的）
        请在插件的onInit中时调用 apiUtil.getPluginManager().registerHUD(界面ID, 到界面类的路径) 注册Hud。
        Args:
            uiName (str): UI的id，即resource_packs/xxxRes/ui/UI文件.json 中的 "namespace" 的值
            uiClassPath (str): UI主类的路径，也就是从xxxBehavior出发，到ui的类的路径。
        Returns:
            ui (UIBase): 界面主类
        """
        return UIBase()


    def registerGui(self, uiName, uiClassPath, uiClass):
        # type: (str, str, clazz) -> UIBase
        """
        注册一个Gui界面。此界面平常不显示，需要用 apiUtil.OpenGui(ui)打开，使用 apiUtil.CloseGui(ui) 关闭
        请在插件的onInit中时调用 apiUtil.getPluginManager().registerGui(界面ID, 到界面类的路径) 注册Gui。
        Args:
            uiName (str): UI的id，即resource_packs/xxxRes/ui/UI文件.json 中的 "namespace" 的值
            uiClassPath (str): UI主类的路径，也就是从xxxBehavior出发，到ui的类的路径。
            uiClass (clazz): UI的主类本身
        Returns:
            ui (UIBase): 界面主类
        """
        return UIBase()


